package com.geese.module.ceo.dao;

import java.util.List;
import java.util.Set;

import org.apache.ibatis.annotations.Param;

import com.geese.common.entity.Courier;
import com.geese.module.admin.vo.CeoQuery;
import com.geese.module.ceo.model.CourierModel;
import com.geese.module.ceo.vo.WaiterQuery;

public interface CourierMapper {

    /**
     * 根据Id查找用户
     */
    Courier findByUserId(@Param("userId") Integer userId);
    
    /**
     * 根据学校id查找校园Ceo
     */
	List<Courier> listBySchoolIds(@Param("schoolIds")List<Integer> schoolIds, @Param("isCeo") Integer isCeo);

	/**
	 * 根据schoolId查找学校
	 */
	Courier findBySchoolId(@Param("schoolId")Integer schoolId, @Param("isCeo") Integer isCeo);

	/**
	 * 新增用户
	 */
	void save(Courier courier);

	/**
	 * 更新用户
	 */
	void update(Courier model);
	
	/**
	 * 根据Id查找用户
	 */
	Courier findById(Integer id);
	
	/**
	 * 删除用户
	 */
	void remove(Integer id);
	
	/**
	 * 查询
	 */
	List<Courier> listCeoByQuery(CeoQuery query);

	/**
	 * 审核小二
	 */
	void check(Integer id);

	/**
	 * 根据ids获取列表
	 */
	List<Courier> listByIds(@Param("ids")List<Integer> ids, @Param("isCeo")int isCeo);

	/**
	 * 批量审核
	 */
	void batchCheck(@Param("ids")List<Integer> ids);

	/**
	 * 查询小二列表
	 */
	List<Courier> listWaiterByQuery(WaiterQuery query);

	/**
	 * 根据用户id查询小二信息，包含学校校区楼幢名
	 */
	CourierModel findInfoByUserId(@Param("userId") Integer userId);

	/**
	 * 根据ids查找用户
	 */
	List<Courier> listAllBySet(@Param("ids")Set<Integer> waiterSet);

	/**
	 * 根据ids查询所有小二，忽略删除状态
	 * @param courierIds
	 * @return
	 */
    List<Courier> selectByIdsIgnoreDel(@Param("ids") List<Integer> courierIds);
}